A developer who desires to build an application generally will rely on one or more application development tools to generate source code or other code for the application. Although code can be entered manually in text form, much conventional application development makes use of more sophisticated authoring tools, packages or suites that, in addition to allowing text entry, provide options to aid the code authoring process.
For example, a development application may provide an integrated development environment (IDE) including a graphical user interface whereby a developer can select common or predefined code elements representing objects, classes, procedures, scripts, and the like or templates or frameworks for entering the same. An IDE may also include support for other features such as compiling and debugging applications developed using the IDE and managing libraries of code and other application components.
For example, ADOBE® FLEX BUILDER™ is an increasingly popular development environment that makes use of the ACTIONSCRIPT™ programming language to define mxml files that are complied for execution by ADOBE® FLASH® or AIR™ (all available from Adobe Systems Inc. of San Jose, Calif.). These and other development environments may allow for an application to be developed that handles user input and output based on a plurality of defined states while relying on data resources operating independently from the application as the ultimate source (and/or destination) of data used by the application under development. Use of these frameworks can present coding and other development challenges.
The challenges may be particularly apparent when developing in a Service Oriented Architecture (SOA) in which some (or all) functionality of an application depends on data from a remote source, such as a web service. For instance, to meaningfully debug or otherwise test the application under development, the developer may need access to the web service. This may be impossible, such as when a connection to the service is unavailable due to the developer's location, or inadvisable, such as when a connection to the service incurs charges.